package com.tianpengcc.dao;

import java.util.List;

import com.tianpengcc.model.DateType;
import com.tianpengcc.model.Diray;
import com.tianpengcc.model.PageBean;

/**
 * 
 * <p>Title:DirayDAO</p>
 * <p>Description:日记的DAO接口</p>
 * <p>Compary</p>
 * @author 田鹏
 * @date 2017年10月25日下午8:51:00
 */
public interface DirayDAO {
	
	/**
	 * 
	 * <p>Description:根据pageBean分页查询日记</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月25日下午9:00:35
	 */
	public List<Diray> findByPage(PageBean<Diray> pageBean) throws Exception ;
	
	/**
	 * 
	 * <p>Description:按照DirayType查询Diray并分页封装到List里面返回</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日下午4:27:10
	 */
	public List<Diray> findByDirayTypeAndPage(Integer dirayTypeId,PageBean<Diray> pageBean) throws Exception ;
	
	/**
	 * 
	 * <p>Description:查询总记录数</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月25日下午9:01:00
	 */
	public int findTotalCount() throws Exception ;
	
	/**
	 * 
	 * <p>Description:按照日记的创建时间类型进行划分，按每年的每月进行计算，分页查询</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日上午12:25:31
	 */
	public List<DateType> findDateTypeByPageBean(int dateTypeSize) throws Exception ;

	/**
	 * 
	 * <p>Description:根据年和月分页进行查询Diray集合</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日下午5:33:51
	 */
	public List<Diray> findByYearAndMonth(int year,int month,PageBean<Diray> pageBean) throws Exception ;

	/**
	 * 
	 * <p>Description:根据年和月，查询diray的记录数</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日下午5:34:46
	 */
	public int findCountByYearAndMonth(int year,int month) throws Exception ;
	
	/**
	 * 
	 * <p>Description:根据DirayName模糊查询日记，并分页</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日下午9:03:34
	 */
	public List<Diray> findByDirayNameLikeAndPage(String dirayName,PageBean<Diray> pageBean) throws Exception ;
	
	/**
	 * 
	 * <p>Description:根据dirayName模糊查询日记，返回记录数</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日下午9:22:23
	 */
	public int findCountByDirayNameLike(String dirayName) throws Exception ;

	/**
	 * 
	 * <p>Description:根据dirayId查询日记</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月26日下午11:40:15
	 */
	public Diray findByDirayId(Integer dirayId) throws Exception ;

	/**
	 * 
	 * <p>Description:添加操作，返回添加后的持久化对象</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月27日下午3:23:45
	 */
	public Diray doCreate(Diray diray) throws Exception ;
	
	/**
	 * 
	 * <p>Description:更新操作，返回已被更改日记</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月27日下午3:24:52
	 */
	public Diray doUpdate(Integer dirayId,Diray diray) throws Exception ;
	
	/**
	 * 
	 * <p>Description:更新操作，根据日记的Id，进行更新，返回最新日记</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月27日下午3:26:13
	 */
	public Diray doUpdate(Diray diray) throws Exception ;

	/**
	 * 
	 * <p>Description:删除操作，根据日记的Id，进行删除</p>
	 * <p>Compary</p>
	 * @author 田鹏
	 * @date 2017年10月27日下午3:59:11
	 */
	public void doDelete(Integer dirayId) throws Exception ;
}
